package com.whsr.readservice.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

public class TreeUtil {


    /**
     * @author chatwin
     * @param list 将要转换的数据
     * @param id 当前关系字段名
     * @param pid 父级关系字段名
     * @param value 父级值
     * @param child 子数据字段名
     * @param <T> 泛型数据类型
     * @return 树形结构数据
     */
    public static <T> JSONArray voListToTree(List<T> list, String id, String pid, String value, String child) {
        JSONArray ja = JSONArray.parseArray(JSON.toJSONString(list));
        JSONArray result = new JSONArray();
        for (int i = 0; i < ja.size(); i++) {
            JSONObject jo = ja.getJSONObject(i);
            if (value.equals("" + jo.get(pid))) {
                JSONArray children = voListToTree(list, id, pid, "" + jo.get(id), child);
                if (children.size() > 0) {
                    jo.put(child, children);
                }
                result.add(jo);
            }
        }
        return result;
    }

}
